package basis.netease.medium;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 7-2 或运算的最小翻转次数
 * 给你三个正整数 a、b 和 c。
 * 你可以对 a 和 b 的二进制表示进行位翻转操作，返回能够使按位或运算   a OR b == c 成立的最小翻转次数。
 * 「位翻转操作」是指将一个数的二进制表示任何单个位上的 1 变成 0 或者 0 变成 1 。
 * 提示：
 * 1 <= a <= 10^9
 * 1 <= b <= 10^9
 * 1 <= c <= 10^9
 * 输入格式:
 * 3个正整数a,b,c，以","分隔。
 * 输出格式:
 * 一个数字，字符串形式
 * 输入样例:
 * a,b,c分别为：
 * 1,2,3
 * 输出样例:
 * 最小翻转次数：
 * 0
 */
public class Main_2 {
    public static void main(String[] args) {
        // a b c
        // 1 1 0 需要翻转2次
        // 1 0 0 需要翻转1次
        // 0 1 0 需要翻转1次
        // 0 0 0 不需要翻转
        // 1 1 1 不需要翻转
        // 1 0 1 不需要翻转
        // 0 1 1 不需要翻转
        // 0 0 1 需要翻转1次
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        int[] nums = Arrays.stream(input.split(",")).mapToInt(Integer::parseInt).toArray();
        int a = nums[0];
        int b = nums[1];
        int c = nums[2];
        int result = 0;
        // int是32位，所以用32这个值
        for (int i = 0; i < 32; i++) {
            int bitA = (a >> i) & 1;
            int bitB = (b >> i) & 1;
            int bitC = (c >> i) & 1;
            if (bitC == 1 && bitA == 0 && bitB == 0) {
                result++;
            } else if (bitC == 0) {
                if (bitA == 1) {
                    result++;
                }
                if (bitB == 1) {
                    result++;
                }
            }
        }
        System.out.println(result);
    }

}
